"""
查找字符串:除了使用index()方法在字符串中查找指定元素，还可使用find()方法在一个较长的字符串中查找子串。如果找到子串，返回子串所在位置的最左端索引，否则返回−1
语法：str.find(sub[,start[,end]])
    str：表示被查找字符串
    sub：表示查找的子串
    start：表示开始索引，缺省时为0
    end：表示结束索引，缺省时为字符串的长度。
【例 4-5】   使用find()方法实现例4-2，查找输入的人物是否在《三国演义》片段中。
"""
#创建字符串excerpts并赋值
excerpts = '''次日，于桃园中，备下乌牛白马祭礼等项，三人焚香再拜而说誓曰：
        “念刘备、关羽、张飞，虽然异姓，既结为兄弟，则同心协力，救困扶危；
        上报国家，下安黎庶。不求同年同月同日生，只愿同年同月同日死。
        皇天后土，实鉴此心，背义忘恩，天人共戮！”誓毕，拜玄德为兄，
        关羽次之，张飞为弟。祭罢天地，复宰牛设酒，聚乡中勇士，
        得三百余人，就桃园中痛饮一醉。来日收拾军器，但恨无马匹可乘。
        正思虑间，人报有两个客人，引一伙伴当，赶一群马，投庄上来。
        玄德曰：“此天佑我也！”三人出庄迎接。原来二客乃中山大商：
        一名张世平，一名苏双，每年往北贩马，近因寇发而回。
        玄德请二人到庄，置酒管待，诉说欲讨贼安民之意。二客大喜，
        愿将良马五十匹相送；又赠金银五百两，镔铁一千斤，以资器用。'''
# name = input('请输入人物姓名：')				#输入人物姓名并赋给name
# index = excerpts.find(name)#使用find()方法在excerpts中查找name
# if index > -1:								#如果返回值大于-1
#     #输出index
#     print('{}首次出现的位置索引为：{}'.format(name, index))
#     #使用count()方法获取name出现的次数并输出
#     print('{}在此片段中出现{}次'.format(name, excerpts.count(name)))
# else:
#     print('{}没有出现在此片段中'.format(name))	#输出不在此片段中

"""
分割字符串： split()方法以指定字符为分隔符，从字符串左端开始将字符串分隔成多个子串，并返回分割结果的列表，其语法格式如下
语法：str.split([delimiter, num])
    str：表示被分割的字符串；
    delimiter：表示分隔符，可以是空格、换行（\n）、制表符（\t）等，缺省时为空格；
    num：表示分割次数，缺省时全部分割
"""
strs = 'This is an example of cutting'	 #创建字符串
#以空格为分隔符将字符串全部分割
#结果为['This', 'is', 'an', 'example', 'of', 'cutting']
print(strs.split())
#以空格为分隔符将字符串分割3次
#结果为['This', 'is', 'an', 'example of cutting']
print(strs.split(' ', 3))

"""
连接字符串:join()方法用于将序列中的元素以指定的字符连接，生成一个新的字符串
语法：
    str.join(sequence)
    str：表示连接符，可以为空；
    sequence：表示要连接的序列
【例 4-6】  将字符串“Rain  falls    on  field   and      tree.”中的多余空格删除，即如果有连续空格只保留一个。
【问题分析】可使用split()方法以空格为分隔符将字符串分隔成多个子串，然后使用join()方法通过空格将多个子串进行连接。
"""
# strs = 'Rain  falls    on  field   and      tree.'#创建字符串strs
# print(strs)							#输出strs
# split_strs = strs.split()			#以空格为分隔符，将strs全部分割
# print(split_strs)					#输出分割后结果
# join_strs =' '.join(split_strs)	#用空格连接分割后的子串
# print(join_strs)						#输出连接后的字符串

"""
替换字符串:replace()方法用于将字符串中的旧字符串替换成新字符串
语法：str.replace(old,new[,max])
    str表示字符串；
    old表示将被替换的旧字符串；
    new表示新字符串，用于替换old；
    max是可选参数，表示替换的最大次数，缺省时替换所有。

例如，使用replace()方法将字符串“Monday Tuesday Wednesday”中的“day”替换为“DAY”，可以用下面代码实现。
"""
# strs = 'Monday Tuesday Wednesday'
# #将strs中的day替换为DAY，输出结果为“MonDAY TuesDAY WednesDAY”
# print(strs.replace('day', 'DAY'))
# #将strs中的day替换为DAY，只替换两次，输出结果为“MonDAY TuesDAY Wednesday”
# print(strs.replace('day', 'DAY', 2))

"""
移除字符串的首尾字符:strip()方法用于移除字符串首尾连续的空白字符或指定字符
语法：str.strip([chars])
    str：表示字符串；、
    chars：表示移除的字符串首尾指定的字符，缺省时为空格。
例如，使用strip()方法移除字符串“110This is an example0001”中的“0”和“1”，可以用下面代码实现。
"""
# strs = '110This is an example0001'			#创建字符串
# #移除strs两侧的1，输出结果为“0This is an example000”
# print(strs.strip('1'))
# #移除strs两侧的1和0，输出结果为“This is an example”
# print(strs.strip('10'))


"""
检测字符串：isalnum()方法用于检测字符串是否由字母和数字，或两种中的一种组成，如果是则返回True，否则返回False，
语法：str.isalnum()
    str：表示要检测的字符串。
例如，使用isalnum()方法判断字符串“2021example”是否由字母和数字组成，可以用下面代码实现。
"""
# strs = '2021example' #创建字符串
# print(strs.isalnum())#判断strs中是否只有字母和数字，输出结果为True
# string1 = 'abc'
# print(string1.isalnum())
# string2 = '123'
# print(string2.isalnum())
# string3 = '123 '
# print(string3.isalnum())
